#ifndef _VAR_HPP
#define _VAR_HPP

#define PAGE_INFO 0
#define PAGE_HOME 1

#define DELAY(T) vTaskDelay(pdMS_TO_TICKS(T))

#define BIT31	0x80000000
#define BIT30	0x40000000
#define BIT29	0x20000000
#define BIT28	0x10000000
#define BIT27	0x08000000
#define BIT26	0x04000000
#define BIT25	0x02000000
#define BIT24	0x01000000
#define BIT23	0x00800000
#define BIT22	0x00400000
#define BIT21	0x00200000
#define BIT20	0x00100000
#define BIT19	0x00080000
#define BIT18	0x00040000
#define BIT17	0x00020000
#define BIT16	0x00010000
#define BIT15	0x00008000
#define BIT14	0x00004000
#define BIT13	0x00002000
#define BIT12	0x00001000
#define BIT11	0x00000800
#define BIT10	0x00000400
#define BIT9	0x00000200
#define BIT8	0x00000100
#define BIT7	0x00000080
#define BIT6	0x00000040
#define BIT5	0x00000020
#define BIT4	0x00000010
#define BIT3	0x00000008
#define BIT2	0x00000004
#define BIT1	0x00000002
#define BIT0	0x00000001

/*
	任务组
	0 屏幕初始化完成
	1 WIFI连接成功
	2 WIFI断开连接
	3 ESPTOUCH完成
	4 WebSockets连接成功
	5 WebSockets断开连接
	6 WebSockets服务器关闭
*/
// 事件 - 屏幕初始化完成
#define EVENT_SCREEN_INIT_DONE		BIT0
// 事件 - WIFI连接成功
#define EVENT_WIFI_CONNECTED		BIT1
// 事件 - WIFI断开连接
#define EVENT_WIFI_DISCONNECTED		BIT2
// 事件 - WIFI配网完成
#define EVENT_WIFI_ESPTOUCH_DONE	BIT3
// 事件 - WebSocket连接成功
#define EVENT_WS_CONNECTED			BIT4
// 事件 - WebSocket断开连接
#define EVENT_WS_DISCONNECTED		BIT5
// 事件 - WebSocket服务器关闭
#define EVENT_WS_CLOSED				BIT6

// 图标
#define ICON_WIFI			"\xEE\xAF\x91"
#define ICON_WEBSOCKET		"\xEE\x9B\xA1"
#define ICON_USER			"\xEE\x98\xBE"

EventGroupHandle_t eventGroup;
QueueHandle_t wsDataQ;
QueueHandle_t inputQ;
TaskHandle_t wsSendOpH;

/* 
	SETTINGS 
*/
// 呼号
char *stCallSign = "ZClub";
// 手动建true/自动键false 选择 
bool stKeyType = true;
// 是true/否false交换左右键
bool stKeySwap = false;
// di按键时长 单位: ms
int stDiTime = 150;
// 播放di时长
int stPlayDiTime = 80;
// 每一个电码中间间隔时长
int stPlaySepTime = 30;
// 自动发送超时时间
int stAutoSendTime = 1000;
// 是否解码
bool stTranCode = true;
// 蜂鸣频率
uint32_t stBeeFreq = 800;
// 蜂鸣占空比
uint32_t stBeeDuty = 4000;

// 输入内容与显示的输入内容
char *inputCode[512] = {0};

// NVS
nvs_handle_t nvsHandle;

char localIP[16];

// WebSockets
esp_websocket_client_handle_t wsHandle;
char *wsUrl = "ws://coffeedebug.zclub.cool/ws";
char *wsChannel = "coffee";
int wsPort = 9908;

#endif